package com.luckcoder.relax.games.domain.dto;

import lombok.Data;
import java.util.List;

/**
 * 游戏结束数据传输对象
 *
 * @author zhanghao
 * @date 2025-09-11
 */
@Data
public class GameFinishData {
    
    /**
     * 游戏编码
     */
    private String gameCode;
    
    /**
     * 最终得分
     */
    private Long finalScore;
    
    /**
     * 游戏时长（秒）
     */
    private Long playTime;
    
    /**
     * 游戏结果（completed完成、timeout超时、quit退出）
     */
    private String gameResult;
    
    /**
     * 游戏模式（normal普通、infinite无限、challenge挑战）
     */
    private String gameMode;
    
    /**
     * 总消灭数量
     */
    private Long totalEliminatedCount;
    
    /**
     * 最高连击数
     */
    private Long maxCombo;
    
    /**
     * 额外游戏数据（JSON格式）
     */
    private String extraData;
    
    /**
     * 详细消灭数据列表
     */
    private List<EmojiEliminateDetail> emojiDetails;
    
    /**
     * Emoji消灭详情
     */
    @Data
    public static class EmojiEliminateDetail {
        /**
         * Emoji的Unicode编码
         */
        private String emojiUnicode;
        
        /**
         * Emoji字符
         */
        private String emojiChar;
        
        /**
         * 本局消灭数量
         */
        private Long eliminatedCount;
        
        /**
         * 首次消灭时间戳
         */
        private Long firstEliminatedTime;
        
        /**
         * 最后消灭时间戳
         */
        private Long lastEliminatedTime;
    }
}